Nepal - Nested Data Parallelism in Haskell
نویسندگان
چکیده
This paper dis usses an extension of Haskell by support for nested data-parallel programming in the style of the spe ialpurpose language Nesl. More pre isely, the extension onsists of a parallel array type, array omprehensions, and a set of primitive parallel array operations. This extension brings a hitherto unsupported style of parallel programming to Haskell. Moreover, nested data parallelism should re eive wider attention when available in a standardised language like Haskell. This paper outlines the language extension and demonstrates its usefulness with two ase studies.
منابع مشابه
Harnessing the Multicores: Nested Data Parallelism in Haskell
If you want to program a parallel computer, a purely functional language like Haskell is a promising starting point. Since the language is pure, it is by-default safe for parallel evaluation, whereas imperative languages are by-default unsafe. But that doesn’t make it easy! Indeed it has proved quite difficult to get robust, scalable performance increases through parallel functional programming...
متن کاملA Tutorial on Parallel and Concurrent Programming in Haskell
This practical tutorial introduces the features available in Haskell for writing parallel and concurrent programs. We first describe how to write semi-explicit parallel programs by using annotations to express opportunities for parallelism and to help control the granularity of parallelism for effective execution on modern operating systems and processors. We then describe the mechanisms provid...
متن کاملExploiting Implicit Parallelism in Domain-Specific Languages
In the recent years hardware evolution shifted from increasing execution speed to increasing the number of available execution units. As the aggregate computing power increases, the problem is how to use it efficiently: instead of running in a sequential manner, as before, software has to execute in separate tasks, each running in parallel on an execution unit. The dominating paradigm is explic...
متن کاملA Language for Nested Data Parallel Design-space Exploration on GPUs
Graphics Processing Units (GPUs) o er potential for very high performance; they are also rapidly evolving. Obsidian is an embedded language (in Haskell) for implementing high performance kernels to be run on GPUs. We would like to have our cake and eat it too; we want to raise the level of abstraction beyond CUDA code and still give the programmer control over the details relevant kernel perfor...
متن کاملWork E cient Higher-Order Vectorisation (Unabridged)
Existing approaches to higher-order vectorisation, also known as flattening nested data parallelism, do not preserve the asymptotic work complexity of the source program. Straightforward examples, such as sparse matrix-vector multiplication, can suffer a severe blow-up in both time and space, which limits the practicality of this method. We discuss why this problem arises, identify the mis-hand...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2001